AAS ASCII-коррекция при вычитании

Флаги

O D I T S Z A P C
?       ? ? * ? *

Команда:

AAS

Логика:

if (AL & 0Fh) > 9 or (AF = 1) then
                            AL = AL - 6
                            AH = AH - 1
                            AF = 1;   CF = 1
                        else
                            AF = 0;   CF = 0
                            AL = AL & 0Fh

Эта команда корректирует результат предшествующего вычитания двух операндов, представленных в неупакованном двоично-десятичном коде, засчет перевода содержимого AL в двоично-десятичный код. Операнд назначения (destination) команды вычитания должен быть специфицирован так же, как AL. Старший полубайт AL всегда равен нулю.

Операнды Такт байты (слова)ОбращенияБайтыПример
нет операндов4 - 1AAS

Примечание:
В неупакованном двоично-десятичном коде каждому байту соответствует одна цифра, и AH содержит более значащуюцифру, а AL - менее значащую.

Hosted by uCoz